import java.util.*;

/**
 * @author LKQ
 * @date 2022/4/12 16:48
 * @description 一次遍历
 */
public class Solution2 {
    public static void main(String[] args) {

    }
    public int candy(int[] ratings) {
        int n = ratings.length;
        int ret = 1;
        // 维护递增递减序列
        int inc = 1, dec = 0, pre = 1;
        for (int i = 1; i < n; i++) {
            if (ratings[i] >= ratings[i - 1]) {
                // 后面比前面积分多或相等
                dec = 0;
                pre = ratings[i] == ratings[i - 1] ? 1 : pre + 1;
                ret += pre;
                inc = pre;
            } else {
                // 出现递减序列，维护长度
                dec++;
                // 当前的递减序列长度和上一个递增序列等长时，需要把最近的递增序列的最后一个同学也并进递减序列中
                if (dec == inc) {
                    dec++;
                }
                ret += dec;
                pre = 1;
            }
        }
        return ret;
    }
}
